#include "StdAfx.h"
#include ".\synchronizationobject.h"

////////////////////////////////////////////////////////////////////////////////
//CLockMetux
////////////////////////////////////////////////////////////////////////////////
CLockMetux::CLockMetux(HANDLE hMetux)
{
	m_hMetux = hMetux;
}

CLockMetux::~CLockMetux(void)
{
}

BOOL CLockMetux::Lock()
{
	return (WaitForSingleObject(m_hMetux, INFINITE) == WAIT_OBJECT_0);
}
BOOL CLockMetux::UnLock()
{
	return ReleaseMutex(m_hMetux);
}


////////////////////////////////////////////////////////////////////////////////
//CAutoLockMetux
////////////////////////////////////////////////////////////////////////////////
CAutoLockMetux::CAutoLockMetux(HANDLE hMetux)
{
	m_lock = new CLockMetux(hMetux);
	if (m_lock)
	{
		m_lock->Lock();
	}
}

CAutoLockMetux::~CAutoLockMetux(void)
{
	if (m_lock)
	{
		m_lock->UnLock();
		delete m_lock;
	}
}
